Security News
Opengrep Emerges as Open Source Alternative Amid Semgrep Licensing Controversy
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
webdriver-manager
Advanced tools
The webdriver-manager npm package is a tool for managing WebDriver binaries. It is commonly used to download, update, and start WebDriver binaries for Selenium WebDriver, making it easier to set up and manage the necessary components for running automated browser tests.
Download WebDriver binaries
This feature allows you to download the necessary WebDriver binaries for your browser. The `update` method fetches the latest versions of the binaries and stores them locally.
const webdriverManager = require('webdriver-manager');
webdriverManager.update();
Start WebDriver server
This feature starts the WebDriver server, which is necessary for running Selenium WebDriver tests. The `start` method launches the server and makes it ready to accept WebDriver commands.
const webdriverManager = require('webdriver-manager');
webdriverManager.start();
Stop WebDriver server
This feature stops the WebDriver server. The `shutdown` method gracefully stops the server, ensuring that all resources are properly released.
const webdriverManager = require('webdriver-manager');
webdriverManager.shutdown();
The selenium-standalone package is similar to webdriver-manager in that it helps manage Selenium WebDriver binaries. It provides commands to install, start, and stop the Selenium server. Compared to webdriver-manager, selenium-standalone offers more flexibility in configuring the Selenium server and supports a wider range of browsers and versions.
The chromedriver package is specifically designed to manage the ChromeDriver binary. It allows you to download, update, and start the ChromeDriver server. While it is more limited in scope compared to webdriver-manager, it is a good choice if you only need to work with Chrome.
The geckodriver package is similar to chromedriver but is focused on managing the GeckoDriver binary for Firefox. It provides functionality to download, update, and start the GeckoDriver server. Like chromedriver, it is more specialized and limited in scope compared to webdriver-manager.
To install this as a dependency: npm install -D webdriver-manager
. The
following is an example running webdriver-manager as a dependency.
The test downloads the providers and starts the selenium server standalone as
detached. After the test, it will shutdown the selenium server standalone.
import {
Options,
setLogLevel,
shutdown,
start,
update,
} from 'webdriver-manager';
const options: Options = {
browserDrivers: [{
name: 'chromedriver' // For browser drivers, we just need to use a valid
// browser driver name. Other possible values
// include 'geckodriver' and 'iedriver'.
}],
server: {
name: 'selenium',
runAsNode: true, // If we want to run as a node. By default
// running as detached will set this to true.
runAsDetach: true // To run this in detached. This returns the
// process back to the parent process.
}
};
setLogLevel('info'); // Required if we webdriver-manager to log to
// console. Not setting this will hide the logs.
describe('some web test', () => {
beforeAll(async () => {
await update(options);
await start(options);
});
it('should run some web test', async () => {
// Your async / await web test with some framework.
});
afterAll(async () => {
await shutdown(options); // Makes the web request to shutdown the server.
// If we do not call shutdown, the java command
// will still be running the server on port 4444.
});
});
npm i -g webdriver-manager
webdriver-manager update // Downloads the latest binaries.
webdriver-manager start // Starts the selenium server standalone.
Note: Installing globally will not work with Protractor if you are trying to start a Selenium Standalone server with a "local" or "directConnect". It will not work for these since Protractor is looking files downloaded locally to the project.
To get a list of commands for webdriver-manager, use the help flag.
webdriver-manager --help
webdriver-manager [command]
Commands:
webdriver-manager clean Removes downloaded files from the out_dir.
webdriver-manager shutdown Shutdown a local selenium server with GET request
webdriver-manager start Start up the selenium server.
webdriver-manager status List the current available binaries.
webdriver-manager update Install or update selected binaries.
Options:
--version Show version number [boolean]
--help Show help [boolean]
To get a list of options that can be passed to the webdriver-manager update
command, use the help flag.
webdriver-manager update --help
webdriver-manager update
Install or update selected binaries.
Options:
--version Show version number [boolean]
--help Show help [boolean]
--out_dir Location of output. [string]
--chrome Install or update chromedriver.
[boolean] [default: true]
--gecko Install or update geckodriver.[boolean] [default: true]
--github_token Use a GitHub token to prevent rate limit issues.
[string]
--iedriver Install or update ie driver. [boolean] [default: false]
--ignore_ssl Ignore SSL certificates. [boolean]
--log_level The log level of this CLI. [string] [default: "info"]
--proxy Use a proxy server to download files. [string]
--standalone Install or update selenium server standalone.
[boolean] [default: true]
--versions.chrome The chromedriver version. [string]
--versions.gecko The geckodriver version. [string]
--versions.ie The ie driver version. [string]
--versions.standalone The selenium server standalone version. [string]
FAQs
A selenium server and browser driver manager for your end to end tests.
We found that webdriver-manager demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.
Security News
cURL and Go security teams are publicly rejecting CVSS as flawed for assessing vulnerabilities and are calling for more accurate, context-aware approaches.